import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'

//创建持久化实例
/*注意，这个持久化插件如果发现不生效，原因可能是没有改变任何state状态，只有改变了，它才触发保存到localstorage*/
const Persisted = createPersistedState({
	//要保存的值
	paths: ['user', 'user2',]
})

export default createStore({
	/**
	 * 本前端项目用于企业微信客户端和普通微信
	 * 主要是考虑到在使用企业微信时，可能会切换员工账号如果使用的是保存的旧的员工cookie数据，显然不对，所以不使用持久化
	 */
	// plugins: [Persisted],// vuex持久化
	state : {
		loading   : false,
	},

	getters:{

	},
	mutations: {
	
	},
	actions : {
	
	},
	//vuex模块化
	//页面中映射模块中的state： ...mapState('user',['userName','userAvatar','userId','userInfo'])
	modules: {
		//使用require.context来遍历加载文件中的模块对象
		...(r => {
			return r.keys().reduce((c, n) => {
				c[n.replace(/\.\/|\.js/gi, '')] = r(n).default
				return c
			}, [])
		})(require.context('./modules/', true, /\.js$/))
	}
})
